#include "patient_data.h"
#include <string.h>

// 最大挂号人数量
#define MAX_PATIENT_COUNT 10

// 存储挂号人数据
static PatientInfo patients[MAX_PATIENT_COUNT];
static int patient_count = 0;
static int selected_patient_id = -1;

// 获取挂号人数量
int patient_get_count(void) {
    return patient_count;
}

// 获取指定索引的挂号人信息
PatientInfo* patient_get_info(int index) {
    if(index >= 0 && index < patient_count) {
        return &patients[index];
    }
    return NULL;
}

// 添加新挂号人
int patient_add(PatientInfo *info) {
    if(patient_count >= MAX_PATIENT_COUNT || !info) {
        return -1; // 添加失败
    }
    
    // 分配ID
    info->id = patient_count + 1;
    
    // 复制数据
    memcpy(&patients[patient_count], info, sizeof(PatientInfo));
    patient_count++;
    
    return patient_count - 1; // 返回新添加的索引
}

// 设置选中的挂号人ID
void patient_set_selected(int id) {
    selected_patient_id = id;
}

// 获取选中的挂号人ID
int patient_get_selected(void) {
    return selected_patient_id;
}
    